home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / budget.arc / BOND.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1985-06-26  |  2.8 KB  |  106 lines

  1. 10  CLS
  2. 20  KEY OFF
  3. 30  PRINT "ACCRUED INTEREST ON BONDS"
  4. 40  PRINT
  5. 50  PRINT "COMPUTE USING:"
  6. 60  PRINT "              1) 360 DAY YEAR"
  7. 70  PRINT "              2) 365/366 DAY YEAR"
  8. 80  PRINT "              3) END PROGRAM"
  9. 90  PRINT "       WHICH";
  10. 100  INPUT T
  11. 110  ON T GOTO 130,130,1050
  12. 120  GOTO 90
  13. 130  PRINT
  14. 140  PRINT "           COUPON RATE (%)";
  15. 150  INPUT I
  16. 160  PRINT "NUMBER OF COUPONS PER YEAR";
  17. 170  INPUT N
  18. 180  X1=0
  19. 190  PRINT "DOES THIS COUPON INCLUDE A";
  20. 200  PRINT " LONG FIRST YEAR PERIOD (Y/N)";
  21. 210  INPUT Z$
  22. 220  IF Z$="N" OR Z$="n" THEN 520
  23. 230  IF Z$<>"Y" AND Z$<>"y" THEN 190
  24. 240  REM  -- SKIP THIS SECTION IF FIRST PERIOD IS NOT LONG
  25. 250  PRINT
  26. 260  PRINT "  BEGINNING OF FIRST PERIOD";
  27. 270  GOSUB 880
  28. 280  X2=A4
  29. 290  REM  -- ISSUE DATE IS DATE CURRENT BONDHOLDER OBTAINED THE BOND
  30. 300  PRINT "                 ISSUE DATE";
  31. 310  GOSUB 880
  32. 320  REM  -- X1 = NUMBER OF DAYS FROM ISSUE TO END OF PARTIAL PERIOD
  33. 330  X1=A4-X2
  34. 340  IF X1>0 THEN 380
  35. 350  PRINT
  36. 360  PRINT "A LONG FIRST PERIOD MUST BEGIN BEFORE ISSUE."
  37. 370  GOTO 810
  38. 380  PRINT "          FIRST COUPON DATE";
  39. 390  GOSUB 880
  40. 400  REM  -- X2 = TOTAL NUMBER OF DAYS IN FIRST PERIOD
  41. 410  X2=A4-X2
  42. 420  IF X2>0 THEN 460
  43. 430  PRINT
  44. 440  PRINT "A LONG FIRST PERIOD MUST BEGIN BEFORE FIRST COUPON DATE."
  45. 450  GOTO 810
  46. 460  IF X2-X1>0 THEN 500
  47. 470  PRINT
  48. 480  PRINT "FIRST COUPON DATE MAY NOT OCCUR BEFORE ISSUE."
  49. 490  GOTO 810
  50. 500  X1=(X2-X1)/X2
  51. 510  GOTO 570
  52. 520  PRINT
  53. 530  PRINT "BEGINNING OF CURRENT PERIOD";
  54. 540  GOSUB 880
  55. 550  REM  -- X3 = ABSOLUTE NUMBER OF DAYS FROM IMAGINARY DATE
  56. 560  REM  --      00/00/00 TO BEGINNING OF CURRENT PERIOD
  57. 570  X3=A4
  58. 580  PRINT "      END OF CURRENT PERIOD";
  59. 590  GOSUB 880
  60. 600  REM  -- X4 = TOTAL NUMBER OF DAYS IN CURRENT PERIOD
  61. 610  X4=A4-X3
  62. 620  IF X4>=0 THEN 690
  63. 630  PRINT
  64. 640  IF X$="Y" OR Z$="y" THEN 670
  65. 650  PRINT "CURRENT PERIOD MAY NOT END BEFORE IT BEGINS."
  66. 660  GOTO 810
  67. 670  PRINT "CURRENT PERIOD MAY NOT END BEFORE ISSUE OR FIRST COUPON DATE"
  68. 680  GOTO 810
  69. 690  PRINT "            SETTLEMENT DATE";
  70. 700  GOSUB 880
  71. 710  REM  -- X3 = NUMBER OF DAYS FROM BEGINNING OF
  72. 720  REM  --      CURRENT PERIOD TO SETTLEMENT DATE
  73. 730  X3=A4-X3
  74. 740  IF X3>=0 THEN 780
  75. 750  PRINT
  76. 760  PRINT "SETTLEMENT MAY NOT OCCUR BEFORE ISSUE OR FIRST COUPON DATE"
  77. 770  GOTO 810
  78. 780  X3=(X3/X4)+X1
  79. 790  PRINT
  80. 800  PRINT "ACCRUED INTEREST IS";I/N*X3;"% OF PAR."
  81. 810  PRINT
  82. 820  PRINT "WOULD YOU LIKE TO RE-RUN PROGRM";
  83. 830  PRINT " USING NEW DATA (Y/N)?"
  84. 840  Z$=INKEY$:IF Z$="" THEN 840
  85. 850  IF Z$="Y" OR Z$="y" THEN 40
  86. 860  IF Z$="N" OR Z$="n" THEN 1050
  87. 870  GOTO 820
  88. 880  INPUT " (MM,DD,YY)"; M,D,Y
  89. 890  IF T=1 THEN 1030
  90. 900  REM  -- SUBROUTINE TO DETERMINE NUMBER OF DAYS BETWEEN IMAGINARY
  91. 910  REM  -- DATE 00/00/00 AND MM/DD/YY USING 365/366 DAY YEAR.
  92. 920  REM  -- REF. ACCOUNTS PAYABLE & ACCOUNTS RECEIVABLE (WANG), P.255
  93. 930  RESTORE
  94. 940  DATA 0,3,3,6,8,11,13,16,19,21,24,26
  95. 950  FOR I1=1 TO M
  96. 960  READ A4
  97. 970  NEXT I1
  98. 980  A4=A4+Y*365+INT(Y/4)+1+(M-1)*28+D
  99. 990  IF INT(Y/4)=Y/4 AND M<3 THEN A4=A4-1
  100. 1000  RETURN
  101. 1010  REM  -- SUBROUTINE TO COMPUTE NUMBER OF DAYS FROM
  102. 1020  REM  -- IMAGINARY DATE 00/00/00 TO MM/DD/YY USING 360 YEAR.
  103. 1030  A4=(Y*360)+(M*30)+D
  104. 1040  RETURN
  105. 1050  END
  106.